﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Ext.Net;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Modules_HeThong_PhanQuyen_PhanQuyen : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (X.IsAjaxRequest) return;
        BindPermissions();
    }

    public void UpdateUser(object sender, DirectEventArgs e)
    {
        try
        {
            string userName = "";
            if (hdfRole.Value.ToString() == "")
            {
                Util.ShowMessage("Vui lòng chọn quyền trước");
                X.Msg.Hide();
                return;
            }

            RowSelectionModel sm = this.GridPanel2.GetSelectionModel() as RowSelectionModel;
            foreach (SelectedRow row in sm.SelectedRows)
            {
                try
                {
                    userName = row.RecordID;
                    Roles.AddUserToRole(userName, hdfRole.Value.ToString());
                }
                catch (Exception roleEX)
                {

                }
            }

            PagingToolBar1.PageIndex = 1;
            //storeUserPermission.re();
            Util.ShowMessage("Cập nhật thành công");

            wdUserList.Hide();
            X.Msg.Hide();
        }
        catch (Exception ex)
        {

            Util.ShowMessage("Đã có lỗi xảy ra, có thể người dùng đã có quyền.");
            X.Msg.Hide();
            wdUserList.Hide();
        }
    }

    [DirectMethod]
    public void DeleteUser(string username)
    {
        try
        {
            Roles.RemoveUserFromRole(username, hdfRole.Value.ToString());
            Util.ShowMessage("Loại người dùng thành công!");
        }
        catch
        {
            Util.ShowMessage("Lỗi trong quá trình loại người dùng!");
        }
    }

    private void BindPermissions()
    {
        Ext.Net.TreeNode root = new Ext.Net.TreeNode();

        root.Text = "Danh sách";
        root.NodeID = "0";
        root.Expanded = true;
        treePermission.RootVisible = false;
        root.Icon = Icon.House;
        treePermission.Root.Add(root);

        int index = 0;
        string firstRole = "";

        foreach (string s in Roles.GetAllRoles())
        {
            Ext.Net.TreeNode node = new Ext.Net.TreeNode();

            if (index == 0) firstRole = s;
            index++;

            node.Text = s;
            node.NodeID = s;
            node.Expanded = true;
            root.Nodes.Add(node);
            node.Leaf = true;
        }

        // hdfRole.Value = firstRole;
    }
}